package com.cn.wanxi.util;

import java.sql.*;

/**
 * 访问数据库的步骤
 * 1.加载驱动   mysql驱动--jar包--什么时候加载？
 * 2.取得数据库链接
 * 3.封装sql语句（编译sql语句）
 * 4.执行sql语句
 * 5.返回结果
 */
public class JDBC {
    //    反射  通过反射拿到对象
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 取得数据库链接
     *
     * @return
     */
    private static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection("jdbc:mysql://121.199.55.96:3306/canyin04?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false", "canyin04", "123456");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     *
     * @param sql
     * @return 返回影响数据的条数
     */
    public static int update(String sql) {
        PreparedStatement preparedStatement = null;
//        Statement PreparedStatement的区别？
        try {
//            编译sql语句
            preparedStatement = getConnection().prepareStatement(sql);
//            返回的影响数据的条数
            return preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    public static ResultSet query(String sql) {
        PreparedStatement preparedStatement = null;
        try {
            preparedStatement = getConnection().prepareStatement(sql);
            return preparedStatement.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}
